//#define _CRT_SECURE_NO_WARNINGS
//#include<stdio.h>
//#include<math.h>
//#define SIZE 101
//typedef struct
//{
//	char data[SIZE];
//	int len;
//}Str;
//void Init(Str& s)
//{
//	s.len = 0;
//}
//void Input(Str& s, char* ps)
//{
//	while (*ps)
//	{
//		s.data[++s.len] = *(ps++);
//	}
//}
//bool IsLeaf(Str s, int i)
//{
//	if (2 * i > s.len)
//	{
//		return true;
//	}
//	if (2 * i + 1 <= s.len && s.data[2 * i] == '#' && s.data[2 * i + 1] == '#')
//	{
//		return true;
//	}
//	return false;
//}
//int Leaf(Str s)
//{
//	int cnt = 0;
//	for (int i = 1; i <= s.len; i++)
//	{
//		if (s.data[i] != '#' && IsLeaf(s, i))
//		{
//			cnt++;
//		}
//	}
//	return cnt;
//}
//int All(Str s)
//{
//	int cnt = 0;
//	for (int i = 0; i <= s.len; i++)
//	{
//		if (s.data[i] != '#')
//		{
//			cnt++;
//		}
//	}
//	return cnt;
//}
//int High(Str s)
//{
//	return (int)(log2(s.len)) + 1;
//}
//int main()
//{
//	char ch[] = "abcde####fg";
//	Str s;
//	Init(s);
//	Input(s, ch);
//	printf("%d,%d,%d\n", Leaf(s), All(s), High(s));
//	return 0;
//}